package br.com.foxinline.manager.criar;

import br.com.foxinline.modelo.ColetaDados;
import br.com.foxinline.modelo.Quadra;
import br.com.foxinline.modelo.SituacaoColetaDados;
import br.com.foxinline.modelo.Usuario;
import br.com.foxinline.servico.ColetaDadosServico;
import br.com.foxinline.servico.QuadraServico;
import br.com.foxinline.servico.UsuarioServico;
import br.com.foxinline.util.Msg;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

/**
 *
 * @author roniere
 */
@ManagedBean
@ViewScoped
public class managerCriarColetaDados implements Serializable {

    @EJB
    ColetaDadosServico coletaDadosServico;
    @EJB
    UsuarioServico usuarioServico;
    @EJB
    QuadraServico quadraServico;
    private ColetaDados coletaDados;
    private SituacaoColetaDados situacaoColetaDados;
    private Usuario usuario;
    private Quadra quadra;

    @PostConstruct
    private void init() {
        this.coletaDados = new ColetaDados();
        this.quadra = new Quadra();
        this.situacaoColetaDados = new SituacaoColetaDados();
    }

    public ColetaDados getColetaDados() {
        return coletaDados;
    }

    public void setColetaDados(ColetaDados coletaDados) {
        this.coletaDados = coletaDados;
    }

    public Quadra getQuadra() {
        return quadra;
    }

    public void setQuadra(Quadra quadra) {
        this.quadra = quadra;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public SituacaoColetaDados getSituacaoColetaDados() {
        return situacaoColetaDados;
    }

    public void setSituacaoColetaDados(SituacaoColetaDados situacaoColetaDados) {
        this.situacaoColetaDados = situacaoColetaDados;
    }

    public void salvar() {
        try {
            /**
             * Pesquisar Quadra
             */
            List<Quadra> listQuadras = quadraServico.findByName(quadra.getNumero()+"", quadra.getSetor());
            
            if(listQuadras != null && !listQuadras.isEmpty()){
                quadra = listQuadras.get(0);
            }else{
                Msg.messagemWarn("Quadra inexistente");
                return;
            }
            
            situacaoColetaDados.setCriadoPor(usuarioServico.getCurrentUser());
            situacaoColetaDados.setDataCriacao(new Date());
            situacaoColetaDados.setUsuarioAgente(usuario);

            coletaDados.setCriadoPor(usuarioServico.getCurrentUser());
            coletaDados.setDataCriacao(new Date());
            coletaDados.setQuadra(quadra);

            List<SituacaoColetaDados> list = new ArrayList<SituacaoColetaDados>();
            list.add(situacaoColetaDados);

            coletaDados.setSituacaoColetaDados(list);
            coletaDadosServico.save(coletaDados);
            Msg.messagemInfo(Msg.SuccessFull);
            init();
        } catch (Exception e) {
            e.printStackTrace();
            Msg.messagemInfo(Msg.Failure);
        }
    }
}
